<?php

/**
 * ucenik actions.
 *
 * @package    dnevnik
 * @subpackage ucenik
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class ucenikActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
      $razred = DbFinder::from('Razred')->join('Smer')->with('Smer')->findPk($request->getParameter('razred_id'));
      $smer = $razred->getSmer();
      if($smer->getTip() == SmerPeer::$tip['grupni'])
        isicsBreadcrumbs::getInstance()->addItem($razred.' '.$smer, 'razred/pregled?razred_id='.$request->getParameter('razred_id'));
      else  isicsBreadcrumbs::getInstance()->addItem($razred, 'razred/pregled?razred_id='.$request->getParameter('razred_id'));
      isicsBreadcrumbs::getInstance()->addItem('Učenici');

      $this->getResponse()->addJavascript('ext/ext-base.js');
      $this->getResponse()->addJavascript('ext/ext-all.js');
      $this->getResponse()->addJavascript('ext/searchfield.js');
      $this->getResponse()->addJavascript('ext/ucenik_skola_grid.js');
      $this->getResponse()->addStylesheet('ext/ext-all.css');
  }

  public function executeDnevnik(sfWebRequest $request)
  {
      $ucenik = DbFinder::from('Ucenik')->join('Razred')->leftJoin('Smer.Id', 'Razred.SmerId')->with('Razred')->with('Smer')->findPk($request->getParameter('ucenik_id'));
      $razred = $ucenik->getRazred();
      $smer = $razred->getSmer();
      if($request->getParameter('grupa_id'))
      {
          $grupa_id = $request->getParameter('grupa_id');
          $grupa = DbFinder::from('Razred')->join('Smer')->with('Smer')->findPk($grupa_id);
          isicsBreadcrumbs::getInstance()->addItem($grupa.' '.$grupa->getSmer(), 'razred/pregled?razred_id='.$request->getParameter('grupa_id'));
      }

      else
        isicsBreadcrumbs::getInstance()->addItem($razred, 'razred/pregled?razred_id='.$request->getParameter('razred_id'));
      isicsBreadcrumbs::getInstance()->addItem($ucenik, 'ucenik/dnevnik?ucenik_id='.$request->getParameter('ucenik_id'));

      $dnevnik = new Dnevnik($ucenik);
      list($this->predmets, $this->izbornis, $grupas) = $dnevnik->getPredmetiUcenika();
      $this->ocenas = $dnevnik->getUcenikOcenas();
      $this->smer = $smer;
      $this->ucenik = $ucenik;
      $this->zakljucnas = $dnevnik->getUcenikZakljucnas();

      $profesor_razreds = $this->getUser()->getAttribute('razreds');
      if(isset($profesor_razreds[$ucenik->getRazredId()]))
        $profesor_predmets = $profesor_razreds[$ucenik->getRazredId()];
      foreach($grupas as $grupa)
      {
          if(isset($profesor_razreds[$grupa->getRazredId()]))
            foreach($profesor_razreds[$grupa->getRazredId()] as $predmet_id)
              $profesor_predmets[] = $predmet_id;
      }

      $this->profesor_predmets = $profesor_predmets;
      $this->razred = $razred;
      if(isset($grupa_id))
        $this->grupa = $grupa_id;
      else $this->grupa = 0;

      $this->getResponse()->addJavascript('jquery.js');
      $this->getResponse()->addJavascript('jquery.boxy.js');
      $this->getResponse()->addJavascript('dnevnik_skola.js');
      $this->getResponse()->addStylesheet('boxy.css');
      //return $dnevnik->getTemplate();
  }

  public function executeUnesiOcenu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::unesiOcenu($request));
  }

  public function executeUnesiZakljucnuOcenu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::unesiZakljucnuOcenu($request));
  }

  public function executePromeniZakljucnu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::promeniZakljucnu($request));
  }

  public function executePromeniOcenu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::promeniOcenu($request));
  }

  public function executeUnesiOpisnuOcenu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::unesiOpisnuOcenu($request));
  }

  public function executePromeniOpisnuOcenu(sfWebRequest $request)
  {
     return $this->renderText(Dnevnik::promeniOpisnuOcenu($request));
  }

  public function executeUploadImage(sfWebRequest $request)
  {
     $uc_arr = explode('_', $request->getParameter('id'));
     $ucenik_id = $uc_arr[1];
     $newname = $ucenik_id;

     $uploaddir = sfConfig::get('sf_web_dir').'/images/profil/';
     $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

     if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
     {
     }
     else die('Greska!!');

     $img = new sfImage($uploadfile, 'image/jpg');
     $img->resize(85, 113);
     $img->saveAs($uploaddir.$newname.'.jpg');
     unlink($uploadfile);

     return ($this->renderText("<img src='/images/profil/".$newname.".jpg' />"));
  }

  public function executeGrid(sfWebRequest $request)
  {
      $grid = new Grid($request, 'ucenik');
      return $this->renderText($grid->render());
  }

  public function executeGetEdit(sfWebRequest $request)
  {
      $nbrows = 0;
      $arr = array();
      $ucenik = UcenikPeer::getJoin()->withColumn('Profil.EMail', 'Email')->withColumn('Profil.Pol', 'Pol')->withColumn('Profil.Adresa', 'Adresa')->withColumn('Profil.Telefon', 'Telefon')->withColumn('Profil.Mobilni', 'Mobilni')->where('Ucenik.Id', $request->getParameter('ucenik_id'))->findOne();
      $roditelj = DbFinder::from('Roditelj')->join('Profil')->withColumn('Profil.EMail', 'Email')->withColumn('Profil.Ime', 'ImeOca')->withColumn('Profil.Prezime', 'PrezimeOca')->withColumn('Profil.Username', 'Username')->withColumn('Profil.PlainPassword', 'Password')->withColumn('Profil.Mobilni', 'Mobilni1')->findPk($ucenik->getRoditeljId());

      $rec['ime'] = $ucenik->getColumn('Ime');
      $rec['prezime'] = $ucenik->getColumn('Prezime');
      $rec['pol'] = $ucenik->getColumn('Pol');
      $rec['adresa'] = $ucenik->getColumn('Adresa');
      $rec['telefon'] = $ucenik->getColumn('Telefon');
      $rec['mobilni'] = $ucenik->getColumn('Mobilni');

      $rec['red_br'] = $ucenik->getRedBr();
      $rec['id'] = $ucenik->getId();
      $rec['razred_id'] = $ucenik->getRazredId();
      $rec['datum_rod'] = $ucenik->getDatumRod();
      $rec['mesto_rod'] = $ucenik->getMestoRod();
      $rec['opstina_rod'] = $ucenik->getOpstinaRod();
      $rec['drzava_rod'] = $ucenik->getDrzavaRod();
      $rec['jmbg'] = $ucenik->getJmbg();

      $rec['ime_otac'] = $roditelj->getColumn('ImeOca');
      $rec['prezime_otac'] = $roditelj->getColumn('PrezimeOca');
      $rec['ime_majka'] = $roditelj->getImeMajka();
      $rec['prezime_majka'] = $roditelj->getPrezimeMajka();
      $rec['ime_staratelj'] = $roditelj->getImeStaratelj();
      $rec['prezime_staratelj'] = $roditelj->getPrezimeStaratelj();
      $rec['mobilni1'] = $roditelj->getColumn('Mobilni1');
      $rec['mobilni2'] = $roditelj->getMobilni2();
      $rec['username'] = $roditelj->getColumn('Username');
      $rec['password'] = $roditelj->getColumn('Password');
      $rec['email'] = $roditelj->getColumn('Email');

      $arr[] = $rec;
      $nbrows ++;

      $jsonresult = json_encode($arr);
      return $this->renderText('({"total":"'.$nbrows.'","rows":'.$jsonresult.'})');
  }
}